#########################################################################
#                                                                       #
#                            Objective Caml                             #
#                                                                       #
#            Xavier Leroy, projet Cristal, INRIA Rocquencourt           #
#                                                                       #
#   Copyright 1999 Institut National de Recherche en Informatique et    #
#   en Automatique.  All rights reserved.  This file is distributed     #
#   under the terms of the Q Public License version 1.0.                #
#                                                                       #
#########################################################################

# $Id$

include ../config/Makefile

CAMLC=../ocamlcomp.sh
COMPFLAGS=-warn-error A $(INCLUDES)
LINKFLAGS=-linkall -I ../otherlibs/unix
CAMLYACC=../boot/ocamlyacc
YACCFLAGS=
CAMLLEX=../boot/ocamlrun ../boot/ocamllex
CAMLDEP=../boot/ocamlrun ../tools/ocamldep
DEPFLAGS=$(INCLUDES)

INCLUDES=\
  -I ../utils -I ../parsing -I ../typing -I ../bytecomp -I ../toplevel \
  -I ../otherlibs/unix -I ../otherlibs/dynlink

OTHEROBJS=\
  ../otherlibs/unix/unix.cma \
  ../utils/misc.cmo ../utils/config.cmo \
  ../utils/tbl.cmo ../utils/clflags.cmo ../utils/consistbl.cmo \
  ../parsing/longident.cmo \
  ../typing/ident.cmo ../typing/path.cmo ../typing/types.cmo \
  ../typing/btype.cmo ../typing/primitive.cmo ../typing/typedtree.cmo \
  ../typing/subst.cmo ../typing/predef.cmo \
  ../typing/datarepr.cmo ../typing/env.cmo ../typing/oprint.cmo \
  ../typing/ctype.cmo ../typing/printtyp.cmo ../typing/mtype.cmo \
  ../bytecomp/runtimedef.cmo ../bytecomp/bytesections.cmo \
  ../bytecomp/dll.cmo ../bytecomp/meta.cmo ../bytecomp/symtable.cmo \
  ../bytecomp/opcodes.cmo \
  ../toplevel/genprintval.cmo \
  ../otherlibs/dynlink/dynlink.cmo

OBJS=\
	int64ops.cmo \
	primitives.cmo \
	unix_tools.cmo \
	debugger_config.cmo \
	envaux.cmo \
	parameters.cmo \
	lexer.cmo \
	input_handling.cmo \
	debugcom.cmo \
	exec.cmo \
	source.cmo \
	pos.cmo \
	checkpoints.cmo \
	symbols.cmo \
	events.cmo \
	breakpoints.cmo \
	trap_barrier.cmo \
	history.cmo \
	program_loading.cmo \
	printval.cmo \
	show_source.cmo \
	time_travel.cmo \
	program_management.cmo \
	frames.cmo \
	eval.cmo \
	show_information.cmo \
        loadprinter.cmo \
	parser.cmo \
	command_line.cmo \
	main.cmo

all: ocamldebug$(EXE)

ocamldebug$(EXE): $(OBJS) $(OTHEROBJS)
	$(CAMLC) $(LINKFLAGS) -o ocamldebug$(EXE) -linkall $(OTHEROBJS) $(OBJS)

install:
	cp ocamldebug$(EXE) $(BINDIR)/ocamldebug$(EXE)

clean::
	rm -f ocamldebug$(EXE)
	rm -f *.cmo *.cmi

.SUFFIXES:
.SUFFIXES: .ml .cmo .mli .cmi

.ml.cmo:
	$(CAMLC) -c $(COMPFLAGS) $<

.mli.cmi:
	$(CAMLC) -c $(COMPFLAGS) $<

depend: beforedepend
	$(CAMLDEP) $(DEPFLAGS) *.mli *.ml > .depend

lexer.ml: lexer.mll
	$(CAMLLEX) lexer.mll
clean::
	rm -f lexer.ml
beforedepend:: lexer.ml

parser.ml parser.mli: parser.mly
	$(CAMLYACC) parser.mly
clean::
	rm -f parser.ml parser.mli
beforedepend:: parser.ml parser.mli

include .depend
